[INFO] cloning repository https://github.com/phiresky/rga
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/phiresky/rga" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fphiresky%2Frga", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fphiresky%2Frga'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] bcc01f7a62fea3f5cc49247fc8cc510fe30441ff
[INFO] checking phiresky/rga against master#af3c6e733a40e671550e0f0f5aeecaa13772ba56 for pr-74989
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fphiresky%2Frga" "/workspace/builds/worker-6/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/phiresky/rga on toolchain af3c6e733a40e671550e0f0f5aeecaa13772ba56
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/phiresky/rga
[INFO] removed path dependency zip from git repo https://github.com/phiresky/rga
[INFO] finished tweaking git repo https://github.com/phiresky/rga
[INFO] tweaked toml for git repo https://github.com/phiresky/rga written to /workspace/builds/worker-6/source/Cargo.toml
[INFO] crate git repo https://github.com/phiresky/rga already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: dependency (zip) specified without providing a local path, Git repository, or version to use. This will be considered an error in future versions
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr] error: the lock file /workspace/builds/worker-6/source/Cargo.lock needs to be updated but --locked was passed to prevent this
[INFO] [stderr] If you want to try to generate the lock file without accessing the network, use the --offline flag.
[INFO] the lockfile is outdated, regenerating it
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: dependency (zip) specified without providing a local path, Git repository, or version to use. This will be considered an error in future versions
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 98325b656f36e0597fa7b30c0e48e4adf3b2e7014a81b86a8c774a9f0dced54f
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "98325b656f36e0597fa7b30c0e48e4adf3b2e7014a81b86a8c774a9f0dced54f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "98325b656f36e0597fa7b30c0e48e4adf3b2e7014a81b86a8c774a9f0dced54f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "98325b656f36e0597fa7b30c0e48e4adf3b2e7014a81b86a8c774a9f0dced54f", kill_on_drop: false }`
[INFO] [stdout] 98325b656f36e0597fa7b30c0e48e4adf3b2e7014a81b86a8c774a9f0dced54f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 947c33355689a31d93264a482382df4dead63e371e6df4b53230d3f11de7501e
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "947c33355689a31d93264a482382df4dead63e371e6df4b53230d3f11de7501e", kill_on_drop: false }`
[INFO] [stderr] warning: dependency (zip) specified without providing a local path, Git repository, or version to use. This will be considered an error in future versions
[INFO] [stderr]    Compiling syn v1.0.41
[INFO] [stderr]    Compiling pkg-config v0.3.18
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]    Compiling getrandom v0.1.15
[INFO] [stderr]    Compiling either v1.6.0
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]     Checking unicode-width v0.1.8
[INFO] [stderr]    Compiling lexical-core v0.7.4
[INFO] [stderr]     Checking matches v0.1.8
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]    Compiling crc32fast v1.2.0
[INFO] [stderr]     Checking hashbrown v0.9.0
[INFO] [stderr]     Checking arrayvec v0.5.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.9
[INFO] [stderr]    Compiling log v0.4.11
[INFO] [stderr]     Checking scopeguard v1.1.0
[INFO] [stderr]    Compiling encoding_rs v0.8.24
[INFO] [stderr]     Checking adler v0.2.3
[INFO] [stderr]    Compiling anyhow v1.0.32
[INFO] [stderr]     Checking ansi_term v0.11.0
[INFO] [stderr]     Checking fixedbitset v0.2.0
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]    Compiling schemars v0.8.0-alpha-4
[INFO] [stderr]     Checking linked-hash-map v0.5.3
[INFO] [stderr]     Checking dyn-clone v1.0.2
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]     Checking strsim v0.8.0
[INFO] [stderr]     Checking remove_dir_all v0.5.3
[INFO] [stderr]     Checking arrayref v0.3.6
[INFO] [stderr]     Checking uuid v0.8.1
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]     Checking podio v0.1.7
[INFO] [stderr]     Checking termcolor v1.1.0
[INFO] [stderr]     Checking fallible-iterator v0.2.0
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]     Checking glob v0.3.0
[INFO] [stderr]    Compiling paste v1.0.0
[INFO] [stderr]     Checking path-clean v0.1.0
[INFO] [stderr]    Compiling num-traits v0.2.12
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling indexmap v1.6.0
[INFO] [stderr]    Compiling memoffset v0.5.5
[INFO] [stderr]    Compiling miniz_oxide v0.4.2
[INFO] [stderr]    Compiling num-iter v0.1.41
[INFO] [stderr]    Compiling num-rational v0.2.4
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]     Checking thread_local v1.0.1
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling nom v5.1.2
[INFO] [stderr]     Checking unicode-bidi v0.3.4
[INFO] [stderr]     Checking getopts v0.2.21
[INFO] [stderr]    Compiling itertools v0.9.0
[INFO] [stderr]     Checking humantime v1.3.0
[INFO] [stderr]     Checking lru-cache v0.1.2
[INFO] [stderr]    Compiling libc v0.2.77
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking term_size v0.3.2
[INFO] [stderr]     Checking filetime v0.2.12
[INFO] [stderr]     Checking dirs-sys-next v0.1.0
[INFO] [stderr]     Checking xattr v0.2.2
[INFO] [stderr]     Checking idna v0.2.0
[INFO] [stderr]     Checking pretty-bytes v0.2.2
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking regex v1.3.9
[INFO] [stderr]     Checking directories-next v1.0.1
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking tar v0.4.30
[INFO] [stderr]     Checking clap v2.33.3
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]    Compiling jobserver v0.1.21
[INFO] [stderr]     Checking crossbeam-queue v0.2.3
[INFO] [stderr]     Checking crossbeam-channel v0.4.4
[INFO] [stderr]     Checking url v2.1.1
[INFO] [stderr]     Checking flate2 v1.0.17
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]    Compiling cc v1.0.59
[INFO] [stderr]     Checking crossbeam-deque v0.7.3
[INFO] [stderr]     Checking num-integer v0.1.43
[INFO] [stderr]     Checking ordered-float v1.1.0
[INFO] [stderr]     Checking crossbeam v0.7.3
[INFO] [stderr]     Checking env_logger v0.7.1
[INFO] [stderr]     Checking chrono v0.4.15
[INFO] [stderr]     Checking num v0.2.1
[INFO] [stderr]     Checking size_format v1.0.2
[INFO] [stderr]     Checking encoding_rs_io v0.1.7
[INFO] [stderr]     Checking tempfile v3.1.0
[INFO] [stderr]    Compiling bzip2-sys v0.1.9+1.0.8
[INFO] [stderr]    Compiling lmdb-rkv-sys v0.11.0
[INFO] [stderr]    Compiling zstd-sys v1.4.17+zstd.1.4.5
[INFO] [stderr]    Compiling libsqlite3-sys v0.20.0
[INFO] [stderr]    Compiling lzma-sys v0.1.16
[INFO] [stderr]     Checking xz2 v0.1.6
[INFO] [stderr]     Checking bzip2 v0.3.3
[INFO] [stderr]     Checking bzip2 v0.4.1
[INFO] [stderr]     Checking zip v0.5.6
[INFO] [stderr]     Checking lmdb-rkv v0.14.0
[INFO] [stderr]    Compiling synstructure v0.12.4
[INFO] [stderr]    Compiling serde_derive_internals v0.25.0
[INFO] [stderr]    Compiling serde_derive v1.0.116
[INFO] [stderr]    Compiling structopt-derive v0.4.10
[INFO] [stderr]    Compiling dyn-clonable-impl v0.9.0
[INFO] [stderr]    Compiling schemars_derive v0.8.0-alpha-4
[INFO] [stderr]    Compiling derive_more v0.99.10
[INFO] [stderr]     Checking rusqlite v0.24.0
[INFO] [stderr]     Checking dyn-clonable v0.9.0
[INFO] [stderr]     Checking failure v0.1.8
[INFO] [stderr]     Checking structopt v0.3.17
[INFO] [stderr]     Checking serde v1.0.116
[INFO] [stderr]     Checking serde_json v1.0.57
[INFO] [stderr]     Checking bincode v1.3.1
[INFO] [stderr]     Checking rkv v0.10.4
[INFO] [stderr]     Checking petgraph v0.5.1
[INFO] [stderr]     Checking zstd-safe v2.0.5+zstd.1.4.5
[INFO] [stderr]     Checking zstd v0.5.3+zstd.1.4.5
[INFO] [stderr]     Checking tree_magic_mini v1.0.0
[INFO] [stderr]     Checking ripgrep_all v0.9.7-alpha.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes
[INFO] [stdout]  --> src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(specialization)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(incomplete_features)]` on by default
[INFO] [stdout]   = note: see issue #31844 <https://github.com/rust-lang/rust/issues/31844> for more information
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`
[INFO] [stdout]  --> src/adapters/fns.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::io::{BufRead, BufReader};
[INFO] [stdout]   |               ^^^^^^^  ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/adapters/fns.rs:9:16
[INFO] [stdout]   |
[INFO] [stdout] 9 |     io::{Read, Write},
[INFO] [stdout]   |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0106]: missing lifetime specifier
[INFO] [stdout]   --> src/adapters/decompress.rs:51:65
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn decompress_any(reason: &FileMatcher, inp: ReadBox) -> Result<ReadBox> {
[INFO] [stdout]    |                           ------------       -------            ^^^^^^^ expected named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: this function's return type contains a borrowed value, but the signature does not say whether it is borrowed from `reason` or `inp`
[INFO] [stdout] help: consider introducing a named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn decompress_any<'a>(reason: &'a FileMatcher, inp: ReadBox) -> Result<ReadBox<'a>> {
[INFO] [stdout]    |                  ^^^^         ^^^^^^^^^^^^^^^                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0106]: missing lifetime specifier
[INFO] [stdout]   --> src/test_utils.rs:14:61
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn simple_adapt_info(filepath: &Path, inp: ReadBox) -> (AdaptInfo, FileMatcher) {
[INFO] [stdout]    |                                    -----       -------      ^^^^^^^^^ expected named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: this function's return type contains a borrowed value, but the signature does not say whether it is borrowed from `filepath` or `inp`
[INFO] [stdout] help: consider introducing a named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn simple_adapt_info<'a>(filepath: &'a Path, inp: ReadBox) -> (AdaptInfo<'a>, FileMatcher) {
[INFO] [stdout]    |                         ^^^^           ^^^^^^^^                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `impl` item signature doesn't match `trait` item signature
[INFO] [stdout]   --> src/adapters/decompress.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 93 |     fn adapt(&self, ai: AdaptInfo, detection_reason: &FileMatcher) -> Result<ReadBox> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ found `fn(&decompress::DecompressAdapter, adapters::AdaptInfo<'_>, &matching::FileMatcher) -> std::result::Result<Box<dyn std::io::Read + Send>, anyhow::Error>`
[INFO] [stdout]    | 
[INFO] [stdout]   ::: src/adapters.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn adapt<'a>(&self, a: AdaptInfo<'a>, detection_reason: &FileMatcher) -> Result<ReadBox<'a>>;
[INFO] [stdout]    |     --------------------------------------------------------------------------------------------- expected `fn(&decompress::DecompressAdapter, adapters::AdaptInfo<'a>, &matching::FileMatcher) -> std::result::Result<Box<(dyn std::io::Read + Send + 'a)>, anyhow::Error>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected `fn(&decompress::DecompressAdapter, adapters::AdaptInfo<'a>, &matching::FileMatcher) -> std::result::Result<Box<(dyn std::io::Read + Send + 'a)>, _>`
[INFO] [stdout]               found `fn(&decompress::DecompressAdapter, adapters::AdaptInfo<'_>, &matching::FileMatcher) -> std::result::Result<Box<dyn std::io::Read + Send>, _>`
[INFO] [stdout]    = help: the lifetime requirements from the `impl` do not correspond to the requirements in the `trait`
[INFO] [stdout]    = help: verify the lifetime relationships in the `trait` and `impl` between the `self` argument, the other inputs and its output
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `impl` item signature doesn't match `trait` item signature
[INFO] [stdout]    --> src/adapters/ffmpeg.rs:55:5
[INFO] [stdout]     |
[INFO] [stdout] 55  | /     fn adapt_write(
[INFO] [stdout] 56  | |         &self,
[INFO] [stdout] 57  | |         ai: AdaptInfo,
[INFO] [stdout] 58  | |         _detection_reason: &FileMatcher,
[INFO] [stdout] ...   |
[INFO] [stdout] 156 | |         Ok(())
[INFO] [stdout] 157 | |     }
[INFO] [stdout]     | |_____^ found `fn(&FFmpegAdapter, adapters::AdaptInfo<'_>, &matching::FileMatcher, &mut dyn std::io::Write) -> std::result::Result<(), anyhow::Error>`
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/adapters/writing.rs:8:5
[INFO] [stdout]     |
[INFO] [stdout] 8   | /     fn adapt_write<'a>(
[INFO] [stdout] 9   | |         &self,
[INFO] [stdout] 10  | |         a: super::AdaptInfo<'a>,
[INFO] [stdout] 11  | |         detection_reason: &crate::matching::FileMatcher,
[INFO] [stdout] 12  | |         oup: &mut (dyn Write + 'a),
[INFO] [stdout] 13  | |     ) -> Result<()>;
[INFO] [stdout]     | |____________________- expected `fn(&FFmpegAdapter, adapters::AdaptInfo<'a>, &matching::FileMatcher, &mut (dyn std::io::Write + 'a)) -> std::result::Result<(), anyhow::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected `fn(&FFmpegAdapter, adapters::AdaptInfo<'a>, &matching::FileMatcher, &mut (dyn std::io::Write + 'a)) -> std::result::Result<_, _>`
[INFO] [stdout]                found `fn(&FFmpegAdapter, adapters::AdaptInfo<'_>, &matching::FileMatcher, &mut dyn std::io::Write) -> std::result::Result<_, _>`
[INFO] [stdout]     = help: the lifetime requirements from the `impl` do not correspond to the requirements in the `trait`
[INFO] [stdout]     = help: verify the lifetime relationships in the `trait` and `impl` between the `self` argument, the other inputs and its output
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `impl` item signature doesn't match `trait` item signature
[INFO] [stdout]    --> src/adapters/sqlite.rs:64:5
[INFO] [stdout]     |
[INFO] [stdout] 64  | /     fn adapt_write(
[INFO] [stdout] 65  | |         &self,
[INFO] [stdout] 66  | |         ai: AdaptInfo,
[INFO] [stdout] 67  | |         _detection_reason: &FileMatcher,
[INFO] [stdout] ...   |
[INFO] [stdout] 122 | |         Ok(())
[INFO] [stdout] 123 | |     }
[INFO] [stdout]     | |_____^ found `fn(&sqlite::SqliteAdapter, adapters::AdaptInfo<'_>, &matching::FileMatcher, &mut dyn std::io::Write) -> std::result::Result<(), anyhow::Error>`
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/adapters/writing.rs:8:5
[INFO] [stdout]     |
[INFO] [stdout] 8   | /     fn adapt_write<'a>(
[INFO] [stdout] 9   | |         &self,
[INFO] [stdout] 10  | |         a: super::AdaptInfo<'a>,
[INFO] [stdout] 11  | |         detection_reason: &crate::matching::FileMatcher,
[INFO] [stdout] 12  | |         oup: &mut (dyn Write + 'a),
[INFO] [stdout] 13  | |     ) -> Result<()>;
[INFO] [stdout]     | |____________________- expected `fn(&sqlite::SqliteAdapter, adapters::AdaptInfo<'a>, &matching::FileMatcher, &mut (dyn std::io::Write + 'a)) -> std::result::Result<(), anyhow::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected `fn(&sqlite::SqliteAdapter, adapters::AdaptInfo<'a>, &matching::FileMatcher, &mut (dyn std::io::Write + 'a)) -> std::result::Result<_, _>`
[INFO] [stdout]                found `fn(&sqlite::SqliteAdapter, adapters::AdaptInfo<'_>, &matching::FileMatcher, &mut dyn std::io::Write) -> std::result::Result<_, _>`
[INFO] [stdout]     = help: the lifetime requirements from the `impl` do not correspond to the requirements in the `trait`
[INFO] [stdout]     = help: verify the lifetime relationships in the `trait` and `impl` between the `self` argument, the other inputs and its output
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes
[INFO] [stdout]  --> src/lib.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(specialization)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(incomplete_features)]` on by default
[INFO] [stdout]   = note: see issue #31844 <https://github.com/rust-lang/rust/issues/31844> for more information
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`
[INFO] [stdout]  --> src/adapters/fns.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::io::{BufRead, BufReader};
[INFO] [stdout]   |               ^^^^^^^  ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/adapters/fns.rs:9:16
[INFO] [stdout]   |
[INFO] [stdout] 9 |     io::{Read, Write},
[INFO] [stdout]   |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0106]: missing lifetime specifier
[INFO] [stdout]   --> src/adapters/decompress.rs:51:65
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn decompress_any(reason: &FileMatcher, inp: ReadBox) -> Result<ReadBox> {
[INFO] [stdout]    |                           ------------       -------            ^^^^^^^ expected named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: this function's return type contains a borrowed value, but the signature does not say whether it is borrowed from `reason` or `inp`
[INFO] [stdout] help: consider introducing a named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn decompress_any<'a>(reason: &'a FileMatcher, inp: ReadBox) -> Result<ReadBox<'a>> {
[INFO] [stdout]    |                  ^^^^         ^^^^^^^^^^^^^^^                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0495]: cannot infer an appropriate lifetime due to conflicting requirements
[INFO] [stdout]   --> src/adapters/decompress.rs:54:72
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let gz = |inp: ReadBox| Box::new(flate2::read::MultiGzDecoder::new(inp));
[INFO] [stdout]    |                                                                        ^^^
[INFO] [stdout]    |
[INFO] [stdout] note: first, the lifetime cannot outlive the anonymous lifetime #1 defined on the body at 54:14...
[INFO] [stdout]   --> src/adapters/decompress.rs:54:14
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let gz = |inp: ReadBox| Box::new(flate2::read::MultiGzDecoder::new(inp));
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: ...so that the expression is assignable
[INFO] [stdout]   --> src/adapters/decompress.rs:54:72
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let gz = |inp: ReadBox| Box::new(flate2::read::MultiGzDecoder::new(inp));
[INFO] [stdout]    |                                                                        ^^^
[INFO] [stdout]    = note: expected `Box<dyn std::io::Read + Send>`
[INFO] [stdout]               found `Box<dyn std::io::Read + Send>`
[INFO] [stdout]    = note: but, the lifetime must be valid for the static lifetime...
[INFO] [stdout] note: ...so that the expression is assignable
[INFO] [stdout]   --> src/adapters/decompress.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | /     Ok(match reason {
[INFO] [stdout] 60 | |         Fast(FileExtension(ext)) => match ext.as_ref() {
[INFO] [stdout] 61 | |             "tgz" | "gz" => gz(inp),
[INFO] [stdout] 62 | |             "tbz" | "tbz2" | "bz2" => bz2(inp),
[INFO] [stdout] ...  |
[INFO] [stdout] 73 | |         },
[INFO] [stdout] 74 | |     })
[INFO] [stdout]    | |______^
[INFO] [stdout]    = note: expected `std::result::Result<Box<(dyn std::io::Read + Send + 'static)>, _>`
[INFO] [stdout]               found `std::result::Result<Box<dyn std::io::Read + Send>, _>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0759]: `ai_outer` has lifetime `'a` but it needs to satisfy a `'static` lifetime requirement
[INFO] [stdout]   --> src/adapters/writing.rs:40:28
[INFO] [stdout]    |
[INFO] [stdout] 34 |           ai_outer: super::AdaptInfo<'a>,
[INFO] [stdout]    |                     -------------------- this data with lifetime `'a`...
[INFO] [stdout] ...
[INFO] [stdout] 40 |           std::thread::spawn(move || {
[INFO] [stdout]    |  ____________________________^
[INFO] [stdout] 41 | |             let mut oup = w;
[INFO] [stdout] 42 | |             let ai = ai_outer;
[INFO] [stdout] 43 | |             let res = cc.adapt_write(ai, &detc, &mut oup);
[INFO] [stdout] ...  |
[INFO] [stdout] 47 | |             }
[INFO] [stdout] 48 | |         });
[INFO] [stdout]    | |_________^ ...is captured here...
[INFO] [stdout]    |
[INFO] [stdout] note: ...and is required to live as long as `'static` here
[INFO] [stdout]   --> src/adapters/writing.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         std::thread::spawn(move || {
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `impl` item signature doesn't match `trait` item signature
[INFO] [stdout]   --> src/adapters/decompress.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 93 |     fn adapt(&self, ai: AdaptInfo, detection_reason: &FileMatcher) -> Result<ReadBox> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ found `fn(&DecompressAdapter, adapters::AdaptInfo<'_>, &matching::FileMatcher) -> std::result::Result<Box<dyn std::io::Read + Send>, anyhow::Error>`
[INFO] [stdout]    | 
[INFO] [stdout]   ::: src/adapters.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn adapt<'a>(&self, a: AdaptInfo<'a>, detection_reason: &FileMatcher) -> Result<ReadBox<'a>>;
[INFO] [stdout]    |     --------------------------------------------------------------------------------------------- expected `fn(&DecompressAdapter, adapters::AdaptInfo<'a>, &matching::FileMatcher) -> std::result::Result<Box<(dyn std::io::Read + Send + 'a)>, anyhow::Error>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected `fn(&DecompressAdapter, adapters::AdaptInfo<'a>, &matching::FileMatcher) -> std::result::Result<Box<(dyn std::io::Read + Send + 'a)>, _>`
[INFO] [stdout]               found `fn(&DecompressAdapter, adapters::AdaptInfo<'_>, &matching::FileMatcher) -> std::result::Result<Box<dyn std::io::Read + Send>, _>`
[INFO] [stdout]    = help: the lifetime requirements from the `impl` do not correspond to the requirements in the `trait`
[INFO] [stdout]    = help: verify the lifetime relationships in the `trait` and `impl` between the `self` argument, the other inputs and its output
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `impl` item signature doesn't match `trait` item signature
[INFO] [stdout]    --> src/adapters/ffmpeg.rs:55:5
[INFO] [stdout]     |
[INFO] [stdout] 55  | /     fn adapt_write(
[INFO] [stdout] 56  | |         &self,
[INFO] [stdout] 57  | |         ai: AdaptInfo,
[INFO] [stdout] 58  | |         _detection_reason: &FileMatcher,
[INFO] [stdout] ...   |
[INFO] [stdout] 156 | |         Ok(())
[INFO] [stdout] 157 | |     }
[INFO] [stdout]     | |_____^ found `fn(&FFmpegAdapter, adapters::AdaptInfo<'_>, &matching::FileMatcher, &mut dyn std::io::Write) -> std::result::Result<(), anyhow::Error>`
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/adapters/writing.rs:8:5
[INFO] [stdout]     |
[INFO] [stdout] 8   | /     fn adapt_write<'a>(
[INFO] [stdout] 9   | |         &self,
[INFO] [stdout] 10  | |         a: super::AdaptInfo<'a>,
[INFO] [stdout] 11  | |         detection_reason: &crate::matching::FileMatcher,
[INFO] [stdout] 12  | |         oup: &mut (dyn Write + 'a),
[INFO] [stdout] 13  | |     ) -> Result<()>;
[INFO] [stdout]     | |____________________- expected `fn(&FFmpegAdapter, adapters::AdaptInfo<'a>, &matching::FileMatcher, &mut (dyn std::io::Write + 'a)) -> std::result::Result<(), anyhow::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected `fn(&FFmpegAdapter, adapters::AdaptInfo<'a>, &matching::FileMatcher, &mut (dyn std::io::Write + 'a)) -> std::result::Result<_, _>`
[INFO] [stdout]                found `fn(&FFmpegAdapter, adapters::AdaptInfo<'_>, &matching::FileMatcher, &mut dyn std::io::Write) -> std::result::Result<_, _>`
[INFO] [stdout]     = help: the lifetime requirements from the `impl` do not correspond to the requirements in the `trait`
[INFO] [stdout]     = help: verify the lifetime relationships in the `trait` and `impl` between the `self` argument, the other inputs and its output
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `impl` item signature doesn't match `trait` item signature
[INFO] [stdout]    --> src/adapters/sqlite.rs:64:5
[INFO] [stdout]     |
[INFO] [stdout] 64  | /     fn adapt_write(
[INFO] [stdout] 65  | |         &self,
[INFO] [stdout] 66  | |         ai: AdaptInfo,
[INFO] [stdout] 67  | |         _detection_reason: &FileMatcher,
[INFO] [stdout] ...   |
[INFO] [stdout] 122 | |         Ok(())
[INFO] [stdout] 123 | |     }
[INFO] [stdout]     | |_____^ found `fn(&SqliteAdapter, adapters::AdaptInfo<'_>, &matching::FileMatcher, &mut dyn std::io::Write) -> std::result::Result<(), anyhow::Error>`
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/adapters/writing.rs:8:5
[INFO] [stdout]     |
[INFO] [stdout] 8   | /     fn adapt_write<'a>(
[INFO] [stdout] 9   | |         &self,
[INFO] [stdout] 10  | |         a: super::AdaptInfo<'a>,
[INFO] [stdout] 11  | |         detection_reason: &crate::matching::FileMatcher,
[INFO] [stdout] 12  | |         oup: &mut (dyn Write + 'a),
[INFO] [stdout] 13  | |     ) -> Result<()>;
[INFO] [stdout]     | |____________________- expected `fn(&SqliteAdapter, adapters::AdaptInfo<'a>, &matching::FileMatcher, &mut (dyn std::io::Write + 'a)) -> std::result::Result<(), anyhow::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected `fn(&SqliteAdapter, adapters::AdaptInfo<'a>, &matching::FileMatcher, &mut (dyn std::io::Write + 'a)) -> std::result::Result<_, _>`
[INFO] [stdout]                found `fn(&SqliteAdapter, adapters::AdaptInfo<'_>, &matching::FileMatcher, &mut dyn std::io::Write) -> std::result::Result<_, _>`
[INFO] [stdout]     = help: the lifetime requirements from the `impl` do not correspond to the requirements in the `trait`
[INFO] [stdout]     = help: verify the lifetime relationships in the `trait` and `impl` between the `self` argument, the other inputs and its output
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0495]: cannot infer an appropriate lifetime due to conflicting requirements
[INFO] [stdout]   --> src/adapters/decompress.rs:54:72
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let gz = |inp: ReadBox| Box::new(flate2::read::MultiGzDecoder::new(inp));
[INFO] [stdout]    |                                                                        ^^^
[INFO] [stdout]    |
[INFO] [stdout] note: first, the lifetime cannot outlive the anonymous lifetime #1 defined on the body at 54:14...
[INFO] [stdout]   --> src/adapters/decompress.rs:54:14
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let gz = |inp: ReadBox| Box::new(flate2::read::MultiGzDecoder::new(inp));
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: ...so that the expression is assignable
[INFO] [stdout]   --> src/adapters/decompress.rs:54:72
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let gz = |inp: ReadBox| Box::new(flate2::read::MultiGzDecoder::new(inp));
[INFO] [stdout]    |                                                                        ^^^
[INFO] [stdout]    = note: expected `Box<dyn std::io::Read + Send>`
[INFO] [stdout]               found `Box<dyn std::io::Read + Send>`
[INFO] [stdout]    = note: but, the lifetime must be valid for the static lifetime...
[INFO] [stdout] note: ...so that the expression is assignable
[INFO] [stdout]   --> src/adapters/decompress.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | /     Ok(match reason {
[INFO] [stdout] 60 | |         Fast(FileExtension(ext)) => match ext.as_ref() {
[INFO] [stdout] 61 | |             "tgz" | "gz" => gz(inp),
[INFO] [stdout] 62 | |             "tbz" | "tbz2" | "bz2" => bz2(inp),
[INFO] [stdout] ...  |
[INFO] [stdout] 73 | |         },
[INFO] [stdout] 74 | |     })
[INFO] [stdout]    | |______^
[INFO] [stdout]    = note: expected `std::result::Result<Box<(dyn std::io::Read + Send + 'static)>, _>`
[INFO] [stdout]               found `std::result::Result<Box<dyn std::io::Read + Send>, _>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0759]: `ai_outer` has lifetime `'a` but it needs to satisfy a `'static` lifetime requirement
[INFO] [stdout]   --> src/adapters/writing.rs:40:28
[INFO] [stdout]    |
[INFO] [stdout] 34 |           ai_outer: super::AdaptInfo<'a>,
[INFO] [stdout]    |                     -------------------- this data with lifetime `'a`...
[INFO] [stdout] ...
[INFO] [stdout] 40 |           std::thread::spawn(move || {
[INFO] [stdout]    |  ____________________________^
[INFO] [stdout] 41 | |             let mut oup = w;
[INFO] [stdout] 42 | |             let ai = ai_outer;
[INFO] [stdout] 43 | |             let res = cc.adapt_write(ai, &detc, &mut oup);
[INFO] [stdout] ...  |
[INFO] [stdout] 47 | |             }
[INFO] [stdout] 48 | |         });
[INFO] [stdout]    | |_________^ ...is captured here...
[INFO] [stdout]    |
[INFO] [stdout] note: ...and is required to live as long as `'static` here
[INFO] [stdout]   --> src/adapters/writing.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         std::thread::spawn(move || {
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/adapters/zip.rs:86:30
[INFO] [stdout]    |
[INFO] [stdout] 86 |                         inp: &mut file,
[INFO] [stdout]    |                              ^^^^^^^^^
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              expected struct `Box`, found `&mut ZipFile<'_>`
[INFO] [stdout]    |                              help: store this in the heap by calling `Box::new`: `Box::new(&mut file)`
[INFO] [stdout]    |
[INFO] [stdout]    = note:         expected struct `Box<dyn std::io::Read + Send>`
[INFO] [stdout]            found mutable reference `&mut ZipFile<'_>`
[INFO] [stdout]    = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0621]: explicit lifetime required in the type of `inp`
[INFO] [stdout]   --> src/test_utils.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |   pub fn simple_adapt_info(filepath: &Path, inp: ReadBox) -> (AdaptInfo, FileMatcher) {
[INFO] [stdout]    |                                                  ------- help: add explicit lifetime `'static` to the type of `inp`: `Box<(dyn std::io::Read + Send + 'static)>`
[INFO] [stdout] 15 |       (
[INFO] [stdout] 16 | /         AdaptInfo {
[INFO] [stdout] 17 | |             filepath_hint: filepath.to_owned(),
[INFO] [stdout] 18 | |             is_real_file: true,
[INFO] [stdout] 19 | |             archive_recursion_depth: 0,
[INFO] [stdout] ...  |
[INFO] [stdout] 22 | |             config: RgaConfig::default(),
[INFO] [stdout] 23 | |         },
[INFO] [stdout]    | |_________^ lifetime `'static` required
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 9 previous errors; 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0106, E0308, E0495, E0621, E0759.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0106`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ripgrep_all`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/adapters/zip.rs:86:30
[INFO] [stdout]    |
[INFO] [stdout] 86 |                         inp: &mut file,
[INFO] [stdout]    |                              ^^^^^^^^^
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              expected struct `Box`, found `&mut ZipFile<'_>`
[INFO] [stdout]    |                              help: store this in the heap by calling `Box::new`: `Box::new(&mut file)`
[INFO] [stdout]    |
[INFO] [stdout]    = note:         expected struct `Box<dyn std::io::Read + Send>`
[INFO] [stdout]            found mutable reference `&mut ZipFile<'_>`
[INFO] [stdout]    = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 7 previous errors; 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0106, E0308, E0495, E0759.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0106`.
[INFO] [stdout] 
[INFO] [stderr] error: build failed
[INFO] running `Command { std: "docker" "inspect" "947c33355689a31d93264a482382df4dead63e371e6df4b53230d3f11de7501e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "947c33355689a31d93264a482382df4dead63e371e6df4b53230d3f11de7501e", kill_on_drop: false }`
[INFO] [stdout] 947c33355689a31d93264a482382df4dead63e371e6df4b53230d3f11de7501e
